\documentclass{beamer}
\usefonttheme{professionalfonts}% font de LaTeX
\usetheme{Warsaw} % Tema de la presentación
\mode<presentation>
%%%% packages  %%%%
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath, amsthm, amsfonts}
\usepackage{verbatim}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{colortbl}
%\usepackage[table]{xcolor}



\begin{document}

    \title[HERRAMIENTA DE ESTUDIO MARATONES DE PROGRAMACIÓN]{HERRAMIENTA DE ESTUDIO PARA LAS MARATONES DE PROGRAMACIÓN PROMOVIDAS EN EL PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN DE LA UNIVERSIDAD TECNOLÓGICA DE PEREIRA}
    \author{\textbf{Lina Marcela Jiménez Becerra}}
    \date{Jueves 7 de Junio de 2012}

   \frame{\titlepage}

   \frame{\tableofcontents}


        \section{FORMULACIÓN DEL PROBLEMA} 
	\begin{frame}
	\frametitle{FORMULACIÓN DEL PROBLEMA}
	El programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira no 	cuenta con una herramienta computacional que permita juzgar los problemas de las maratones de 	programación con exactamente los mismos casos de prueba de la competencia, durante un periodo de tiempo posterior a las competencias en las que participa, de modo que permita hacer postmaratones y brinde un espacio de retroalimentación entre los competidores.
	\end{frame}
	
	\section{JUSTIFICACIÓN}
	\begin{frame}
	\frametitle{JUSTIFICACIÓN}
		\begin{itemize}
		\item Herramienta en la que el maratonista evalúe su desempeño.\pause
		\item Necesidad de un ambiente de retroalimentación.\pause
		\item Contribución al proceso de entrenamiento.\pause
		\item Trabajar por la continuidad de las maratones de programación.
		\end{itemize}
	\end{frame}

	\section{OBJETIVOS}
	\subsection{OBJETIVO GENERAL}
	\begin{frame}
	\frametitle{OBJETIVO GENERAL}
	\begin{block}{Objetivo General}
	Adaptar un juez de maratones de programación para construir una herramienta computacional que brinde una etapa adicional de postmaratón para las competencias de programación, llevadas a cabo en el Programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira.
	\end{block}
	\end{frame}
	
	\begin{frame}
	\begin{block}{Objetivos específicos}
			\begin{itemize}
			\item Definir los requerimientos para el diseño de una herramienta computacional orientada a la web que brinde una etapa adicional de postmaratón para las competencias de programación llevadas a cabo en el Programa. 
			\item Realizar un estudio que permita seleccionar una herramienta computacional de código abierto que funcione como juez de maratones de programación y se pueda adaptar a las necesidades de este proyecto.
			\item Adaptar la herramienta seleccionada de modo que cumpla con los requerimientos  previamente definidos.
			\end{itemize}
	\end{block}
	\end{frame}

	\begin{frame}
	\begin{block}{OBJETIVOS ESPECÍFICOS}
			\begin{itemize}
			\item Implantar la herramienta computacional en un servidor del programa para probar su funcionalidad y puesta a punto.
			\item Implantar una prueba piloto sobre la herramienta computacional para medir los indices de retroalimentación postmaratón.
			\item Generar la documentación de la herramienta computacional.
			\end{itemize}
	\end{block}
	\end{frame}


	\section{MARCO REFERENCIAL}
	\begin{frame}{MARCO HISTÓRICO}
	\begin{block}{}
	Un referente histórico de las maratones de programación es la  \emph{Association for Computer Machinery} (ACM), una de las principales organizaciones educativas en cuanto a informática en todo el mundo y que ha promovido este tipo de competencias desde 1977.
	\end{block}\pause

	\begin{block}{}
	En Colombia, la Asociación Colombiana de Ingenieros de Sistemas (ACIS) y la Red de Decanos y Directores de Ingeniería de Sistemas y Afines (REDIS) han venido colaborando estrechamente desde 2004, en la organización de las maratones de programación a nivel universitario y a nivel nacional.
	\end{block}

	\end{frame}

  	\section{MARCO REFERENCIAL}
	\begin{frame}{ESTADO DEL ARTE}
	\begin{block}{}
	Existen diferentes tipos de \emph{contets}, tales como el ACM  \emph{regional contests}, el \emph{International Olympiad in Informatics} (IOI), el \emph{Central European Olympiad in Informatics} (CEOI), el \emph{Google Code Jam}, el ACM \emph{International Collegiate Programming Contest} (ACM ICPC), el \emph{Internet Problem Solving Contest}(IPSC), entre otros.\newline

	Tales concursos pueden clasificarse en \emph{Real-Time Contest}  y \emph{Online Contests}.
	\end{block}
	\end{frame}
	
	\begin{frame}{ESTADO DEL ARTE}
	\begin{block}{}
	De acuerdo al tipo de competencias existen herramientas computacionales conocidas como \emph{judge contest}.\\

	En su mayoría, estas han sido desarrolladas por los propios gestores de los diferentes concursos existentes a nivel  mundial, algunas de estas están a disposición del público interesado, bien sea como  \emph{online judge}  o como aplicaciones descargables para uso propio.
	\end{block}
	\end{frame}

	\begin{frame}{ESTADO DEL ARTE}
	\begin{block}{}	
	\emph{Judges online} o \emph{judges instalables} pueden ser utilizados para el entrenamiento y/o para la competencia, sin embargo, su uso está limitado a las condiciones de sus administradores, en el caso de los \emph{online}, o a las funcionalidades que estos ya traen por defecto, en el caso de los instalables, en consecuencia, es común encontrar herramientas personalizadas para las características específicas de determinados concursos.\\
	\end{block}

	\begin{block}{}	
	En Colombia universidades que promueven las maratones de programación, usan como herramienta de estudio, bien sea, PC\textasciicircum2 o algún otro juez de programación pertenecientes a universidades extranjeras.	
	\end{block}
	\end{frame} 

	\section{ANÁLISIS}
	\begin{frame}{HERRAMIENTAS COMPUTACIONALES DE CÓDIGO ABIERTO QUE FUNCIONAN COMO JUECES DE MARATONES DE PROGRAMACIÓN}
	\begin{itemize}\label{criter}
	\item Código fuente  accesibe y modificable, siendo posible extender las funcionalidades.
	\item Aplicativo tipo web, así los usuarios (maratonistas) no se limitan a una plataforma específica.
	\item Adopción de reglamento definido por ACM-ICPC para maratones de programación, por consiguiente, debe permitir sometimiento de algoritmos implementados en lenguajes como C, C++, Java y Pascal.
	\item Inclusión de aspectos de modularidad en su diseño, así las modificaciones se tornan sencillas y mantenibles.
	\end{itemize}
	\end{frame}

	\begin{frame}{HERRAMIENTAS COMPUTACIONALES DE CÓDIGO ABIERTO QUE FUNCIONAN COMO JUECES DE MARATONES DE PROGRAMACIÓN}
	
	Sistemas de juzgamiento estudiados:\\
	\begin{itemize}
		\item \textbf{injuslin}
		\item \textbf{Celiz}
		\item \textbf{Mooshak}
		\item \textbf{CodeCracker}
		\item \textbf{taskeval}
		\item \textbf{uevalrun}
		\item \textbf{DevContest}
		\item \textbf{DOMjudge}
		\item \textbf{OKO}
		\item \textbf{Boca}
	\end{itemize}
	\end{frame}	
	
	\section{JUEZ ELEGIDO PARA EL PROYECTO}
	\begin{frame}{JUEZ ELEGIDO PARA EL PROYECTO}
	\begin{figure}[H]	
	\label{fig:arq_hard}
	\begin{center}
	\fbox{\includegraphics[width=8cm]{../imagenes/diagramas/arq_ard_domjudge.png}}
	\end{center}		
	\end{figure}
	\end{frame}

	\begin{frame}{ESTRUCTURA DE DIRECTORIOS DOMjudge}
	\begin{figure}[H]	
	\label{fig:esct_dir_DOMjudge}
	\begin{center}
	\fbox{\includegraphics[width=9cm]{../imagenes/diagramas/DOMjudge.png}}
	\end{center}		
	\end{figure}
	\end{frame}
	
	\begin{frame}{DISEÑO DE LA SOLUCIÓN}
		\begin{itemize}
		\item Modificaciones en DB DOMjundge.
		\item DB adicional.
		\item Cambios y adiciones en el código fuente domserver:
			%\begin{itemize}
			%	\item Módulo \textbf{domserver}: lib, sql y www.
			%	\item \textbf{judgehost} directorio lib.
			%\end{itemize}
		\end{itemize}

		\begin{figure}[H]	
		\label{fig:mod_sql}
		\begin{center}
		\fbox{\includegraphics[width=9cm]{../imagenes/diagramas/new_dom_sql.png}}
		\end{center}		
		\end{figure}
	\end{frame}

	\begin{frame}{DISEÑO DE LA SOLUCIÓN}
		\begin{itemize}
			\item Modificaciones directorio lib
		\end{itemize}
		\begin{figure}[H]	
		\label{fig:mod_lib}
		\begin{center}
		\fbox{\includegraphics[width=7cm]{../imagenes/diagramas/new_dom_lib.png}}
		\end{center}		
		\end{figure}
	\end{frame}

	\begin{frame}{DISEÑO DE LA SOLUCIÓN}
		\begin{itemize}
			\item Modificaciones directorio www
		\end{itemize}

		\begin{figure}[H]	
		\label{fig:mod_www}
		\begin{center}
		\fbox{\includegraphics[width=4cm]{../imagenes/diagramas/new_dom_www.png}}
		\end{center}		
		\end{figure}
	\end{frame}

	\begin{frame}{DISEÑO DE LA SOLUCIÓN}
		\begin{itemize}
			\item Modificaciones, adiciones en www/jury
		\end{itemize}
		\begin{figure}[H]	
		\label{fig:new_dom_www_jury}
		\begin{center}
		\fbox{\includegraphics[width=9cm]{../imagenes/diagramas/new_dom_www_jury.png}}
		\end{center}		
		\end{figure}
	\end{frame}

	\begin{frame}{DISEÑO DE LA SOLUCIÓN}
		\begin{itemize}
			\item Modificaciones, adiciones en www/team 
		\end{itemize}
		\begin{figure}[H]	
		\label{fig:new_dom_www_team}
		\begin{center}
		\fbox{\includegraphics[width=7cm]{../imagenes/diagramas/new_dom_www_team.png}}
		\end{center}		
		\end{figure}
	\end{frame}

	\begin{frame}{DISEÑO DE LA SOLUCIÓN}
		\begin{itemize}
			\item Modificaciones, adiciones en judgehost/lib
		\end{itemize}
		\begin{figure}[H]	
		\label{fig:new_jud_lib}
		\begin{center}
		\fbox{\includegraphics[width=9cm]{../imagenes/diagramas/new_jud_lib.png}}
		\end{center}		
		\end{figure}
	\end{frame}

	\begin{frame}{PRUEBA PILOTO}
	Como tal, la prueba piloto inicia a partir del 12 de abril de 2012, desde entonces, se encuentra a total disposición de los usuarios, quienes reciben una cuenta y el respectivo manual de usuario, entre las activides que se han desarrollado en ella están:
	\begin{itemize}
	\item \textbf{UTP INTERNAL CONTEST 2012-04-12}
	\item \textbf{POSTMARATÓN: II COMPETENCIA CCMP 2012 [2012-04-19]}
	\item \textbf{III MARATÓN INTERNA UTP[2012-04-28]}
	\item \textbf{POSTMARATÓN: III MARATÓN INTERNA UTP[2012-05-10]}
	\end{itemize}
	\end{frame}

	\begin{frame}{RESULTADOS OBTENIDOS}
	\end{frame}

	\begin{frame}{CONCLUSIONES}
	\begin{block}{}	
	La hipótesis de este trabajo de investigación plantea la posibilidad de contribuir a la retroalimentación entre los maratonistas del programa, mediante una herramienta computacional que permita realizar Postmaratones, precisamente, la respuesta a dicha hipótesis se infiere a partir del análisis de las encuestas aplicadas, el cual muestra resultados bastante positivos tanto para las variables definidas como para los aspectos de validación del proyecto, estos permiten concluir que efectivamente la herramienta de estudio diseñada e implatada, contribuye a la retroalimentación de los maratonistas de UTP.	
	\end{block}
	\end{frame}

	\begin{frame}{CONCLUSIONES}
	\begin{block}{}
	El entregable del presente trabajo investigativo es además, de gran valor para el proceso de crear escuela entre los maratonistas de UTP, con la cual se busca hacer relevo generacional del conocimiento adquirido por los competidores de alta experiencia en maratones de programación.
	\end{block}

	\begin{block}{}
	 El proceso de aprendizaje colaborativo que se apoya a partir de la herramienta de estudio, genera modelos a seguir, una clara muestra de ello es que una vez iniciada la prueba piloto en el programa de Ingenieria de Sistemas y Computación de la Universidad Tecnológica de Pereira, el CCMP adopta nuestra metodología, de tal modo, que al finalizar una competencia del circuito se inicia una postmaraton de la misma.
	\end{block}
	\end{frame}

	\begin{frame}{CONCLUSIONES}
	\begin{block}{}
	El presente trabajo de investigación es pionero en la temática de maratones en la UTP, pues si bien, estás vienen siendo promovidas desde hace algún tiempo en el programa, es poca la investigación que se ha realizado en torno a ella.
	\end{block}

	\begin{block}{}
	En lo que respecta a la utilización de una herramienta de estudio para apoyar la transferencia de conocimiento en maratones, el programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira es precursor no solamente en al interior de la universidad, sino también en el país.
	\end{block}
	\end{frame}

	\section{POSIBLES PROYECTOS QUE SE PUEDEN DERIVAR DE ESTA INVESTIGACIÓN}
	\begin{frame}{POSIBLES PROYECTOS QUE SE PUEDEN DERIVAR DE ESTA INVESTIGACIÓN}
		\begin{block}{}
		\textbf{Sistema de juzgamiento bajo una estructura de clusters de computadores}:\\
Otro proyecto bastante interesante, consistiría en diseñar una arquitectura de hardware basada en clusters y adaptar el domserver para que realice funciones de despachador. Básicamente, el servidor de bases de datos, el servidor web y el domserver serían alojados en diferentes máquinas, adicionalmente, se ejecutarían n judgedaemos en servidores dedicados, estos se comunicarían con el despachador y estarían juzgando los sometimientos de manera simultánea.
		\end{block}
	\end{frame}

	
	\begin{frame}{POSIBLES PROYECTOS QUE SE PUEDEN DERIVAR DE ESTA INVESTIGACIÓN}
		\begin{block}{}	
		\textbf{Adaptación del sistema de juzgamiento en una herramienta para la enseñanza de la programación}:\\
Consistiría en una herramienta que permita adoptar la metodología de maratones para enseñar en cursos de programación, de modo que los parciales del curso sean maratones conformadas por problemas que impliquen utilizar temas previamente explicados, adicionalmente, permitiría realizar clases practicas en donde se planteen ejercicios, que al ser juzgados muestren al estudiante información de errores detallada.
		\end{block}
	\end{frame}

	\begin{frame}{POSIBLES PROYECTOS QUE SE PUEDEN DERIVAR DE ESTA INVESTIGACIÓN}
	\begin{block}{}
	\textbf{Un sistema de Juzgamiento al estilo de uva}:\\
Consistiría en un juez online bastante robusto que permita desarrollar n tipos de contest de manera simultanea, generar bancos de problemas que puedan ser juzgados en cualquier momento, etc.\\
Sería un sistema que otorgaría cuenta a cualquier usuario del mundo.\\
Este proyecto, además de promover maratones de programación otorgaría un gran reconocimiento al programa de Ingeniería de Sistemas Y Computación de la universidad Tecnológica de Pereira, puesto que a nivel colombiano no existe una universidad que haya desarrollado una aplicación de semejante alcance.
	\end{block}
	\end{frame}

\end{document} 
